config SUNXI_CCU
	bool "Clock support for Allwinner SoCs"
	depends on ARCH_SUNXI || COMPILE_TEST
	select RESET_CONTROLLER
	default ARCH_SUNXI

if SUNXI_CCU

# Base clock types

config SUNXI_CCU_DIV
	bool
	select SUNXI_CCU_MUX

config SUNXI_CCU_FRAC
	bool

config SUNXI_CCU_GATE
	bool

config SUNXI_CCU_MUX
	bool

config SUNXI_CCU_MULT
	bool
	select SUNXI_CCU_MUX

config SUNXI_CCU_PHASE
	bool

# Multi-factor clocks

config SUNXI_CCU_NK
	bool
	select SUNXI_CCU_GATE

config SUNXI_CCU_NKM
	bool
	select RATIONAL
	select SUNXI_CCU_GATE

config SUNXI_CCU_NKMP
	bool
	select RATIONAL
	select SUNXI_CCU_GATE

config SUNXI_CCU_NM
	bool
	select RATIONAL
	select SUNXI_CCU_FRAC
	select SUNXI_CCU_GATE

config SUNXI_CCU_MP
	bool
	select SUNXI_CCU_GATE
	select SUNXI_CCU_MUX

# SoC Drivers

config SUN6I_A31_CCU
	bool "Support for the Allwinner A31/A31s CCU"
	select SUNXI_CCU_DIV
	select SUNXI_CCU_NK
	select SUNXI_CCU_NKM
	select SUNXI_CCU_NM
	select SUNXI_CCU_MP
	select SUNXI_CCU_PHASE
	default MACH_SUN6I

config SUN8I_A23_CCU
	bool "Support for the Allwinner A23 CCU"
	select SUNXI_CCU_DIV
	select SUNXI_CCU_MULT
	select SUNXI_CCU_NK
	select SUNXI_CCU_NKM
	select SUNXI_CCU_NKMP
	select SUNXI_CCU_NM
	select SUNXI_CCU_MP
	select SUNXI_CCU_PHASE
	default MACH_SUN8I

config SUN8I_A33_CCU
	bool "Support for the Allwinner A33 CCU"
	select SUNXI_CCU_DIV
	select SUNXI_CCU_MULT
	select SUNXI_CCU_NK
	select SUNXI_CCU_NKM
	select SUNXI_CCU_NKMP
	select SUNXI_CCU_NM
	select SUNXI_CCU_MP
	select SUNXI_CCU_PHASE
	default MACH_SUN8I

config SUN8I_H3_CCU
	bool "Support for the Allwinner H3 CCU"
	select SUNXI_CCU_DIV
	select SUNXI_CCU_NK
	select SUNXI_CCU_NKM
	select SUNXI_CCU_NKMP
	select SUNXI_CCU_NM
	select SUNXI_CCU_MP
	select SUNXI_CCU_PHASE
	default MACH_SUN8I

endif
